package com.pai4j.common.exception;
import com.pai4j.common.enums.PAIErrorCommonEnum;

/**
 * 自定义业务异常类，继承自RuntimeException
 * 用于在业务逻辑中表示和处理异常情况
 *  含一个表示错误代码的整型字段
 *
 * @author: CYM-pai
 * @date: 2025/04/16 11:39
 **/
public class BusinessException extends RuntimeException {
    
    // 默认错误代码为500，表示内部服务器错误
    private Integer code = 500;

    // 默认构造函数
    public BusinessException() {
        super();
    }

    // 带有错误信息参数的构造函数
    public BusinessException(String msg) {
        super(msg);
    }

    // 带有PAIErrorCommonEnum枚举参数的构造函数
    // 用于根据枚举定义错误代码和消息
    public BusinessException(PAIErrorCommonEnum paiErrorCommonEnum) {
        super(paiErrorCommonEnum.getMessage());
        this.code = paiErrorCommonEnum.getCode();
    }

    // 带有错误代码和消息参数的构造函数
    public BusinessException(Integer code, String msg) {
        super(msg);
        this.code = code;
    }

    // 带有错误消息和原始异常参数的构造函数
    public BusinessException(String message, Throwable cause) {
        super(message, cause);
    }

    // 获取错误代码的方法
    public Integer getCode() {
        return code;
    }
}
